SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
CREATE Procedure [dbo].[SP_TMDOCU_PROV_I01]    
/*-------------------------------------------------------*/    
/*---Empresa              : OFISIS S.A.                --*/    
/*---Cliente              : OFISIS                 --*/    
/*---Sistema              : Tesoreria                  --*/    
/*---M¸dulo               : Empresa                    --*/    
/*---Programa             : Actualizacion Tipo Operac. --*/     
/*---                       Provisiones                --*/    
/*---Script               : tcmovi_b.sql               --*/    
/*---Nombre SP            : SP_TMDOCU_PROV_I01         --*/    
/*---Desarrollado por     : Javier Flores A.           --*/    
/*---Fecha Creaci¸n       : 16/11/1999                 --*/    
/*---Base Datos           : Microsoft Sql Server       --*/    
/*---Versi¸n              : 6.5                        --*/    
/*---Invoca a SP          :                            --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Modificado 1 por     : Carlos Marquez Escobar     --*/    
/*---Fecha Modificaci¸n   : 10/02/2004                 --*/     
/*---Detalle Modificaci¸n : Actualiza NU_ASTO          --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Comentarios                                       --*/    
/*---                                                  --*/    
/*---                                                  --*/    
/*-------------------------------------------------------*/    
    
/*-------------------------------------------------------*/    
/*---Drop Proc SP_TMDOCU_PROV_I01                      --*/    
/*---Grant all on SP_TMDOCU_PROV_I01 to public         --*/     
/*---SP_TMDOCU_PROV_I01                                --*/    
/*-------------------------------------------------------*/    
 @ISCO_EMPR TD_VC_002,     
 @ISCO_USUA_MODI TD_VC_008_USUA,    
 @ISCO_TIPO_OPER TD_VC_003,    
 @ISCO_PROV TD_VC_020,    
 @ISCO_TIPO_DOCU TD_VC_003,    
 @ISNU_DOCU_PROV TD_VC_020
	As
 declare  
	@VNNU_LONG_ASTO	TD_IN_001,  
	@VSCO_UNID_CNTB	TD_VC_003,  
	@VDFE_REGI_COMP	TD_DT_001,   
	@VSST_INTE_BACH	TD_VC_001,  
	@VSST_ASTO_RESU	TD_VC_001,  
	@VSNU_ASTO  	TD_VC_010,  

	@VSST_SUJE_DETR	TD_VC_001,
	@VSCO_ACTI_DETR	TD_VC_003,  
	@VNPO_DETR		TD_NU_016_004
    
 Begin Tran  SP_TMDOCU_PROV_I01    
  
  
  Select @VSST_INTE_BACH = ST_INTE_BACH    
  From TMPARA_TESO   
  Where CO_EMPR = @ISCO_EMPR  
  
  Select @VSST_ASTO_RESU = Max(IsNull( t1.ST_ASTO_RESU, 'S'))  
  From  TMOPRC_RESU t1 , TDTIPO_OPER t2  
  Where t2.CO_EMPR = @ISCO_EMPR And  
	 t2.CO_TIPO_OPER = @ISCO_TIPO_OPER And  
	 t1.CO_EMPR = t2.CO_EMPR And  
	 t1.CO_OPRC_CNTB = t2.CO_OPRC_CNTB  
  
  Select @VNNU_LONG_ASTO = Len(RTrim(LTrim(IsNull(NU_ASTO, '')))),  
	  @VSCO_UNID_CNTB = CO_UNID_CONC,  
	  @VDFE_REGI_COMP = FE_REGI_COMP    
  From   TMDOCU_PROV  
  Where  CO_EMPR = @ISCO_EMPR    
   And   CO_PROV = @ISCO_PROV    
   And   CO_TIPO_DOCU = @ISCO_TIPO_DOCU    
   And   NU_DOCU_PROV = @ISNU_DOCU_PROV    

	Select	@VSST_SUJE_DETR = ST_SUJE_DETR, @VSCO_ACTI_DETR = CO_ACTI_DETR
	From	TMDOCU_PROV   
	Where	CO_EMPR = @ISCO_EMPR    
	And    CO_PROV = @ISCO_PROV    
	And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU    
	And    NU_DOCU_PROV = @ISNU_DOCU_PROV     


  If @VSST_SUJE_DETR = 'S'	
	  Select @VNPO_DETR = PO_DETR
	  From	TTACTI_DETR
	  Where	CO_ACTI_DETR = @VSCO_ACTI_DETR
  Else
	  Select @VNPO_DETR = 0

  
  /*Busco el ultimo correlativo usado para insertar el nro de comprobante*/   
  If @VSST_INTE_BACH = 'N' AND @VSST_ASTO_RESU = 'N' And @VNNU_LONG_ASTO = 0   -- SI ES INTERFASE EN LINEA Y ES DETALLADA  Y NO TIENE ASIENTO   
	 BEGIN   
		Exec SP_TTULTI_ASTO_Q01 @ISCO_EMPR,@ISCO_USUA_MODI, @VSCO_UNID_CNTB, @ISCO_TIPO_OPER, @VDFE_REGI_COMP,   
			@VSNU_ASTO OUTPUT  
		
		Update TMDOCU_PROV   
		Set CO_TIPO_OPER = @ISCO_TIPO_OPER,    
			NU_ASTO = @VSNU_ASTO,   
			PO_DETR = @VNPO_DETR,
			FE_USUA_MODI = Getdate(), CO_USUA_MODI = @ISCO_USUA_MODI    
		Where  CO_EMPR = @ISCO_EMPR    
		And    CO_PROV = @ISCO_PROV    
		And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU    
		And    NU_DOCU_PROV = @ISNU_DOCU_PROV     
		
		
		If @@error <> 0    
		Begin    
			Rollback tran    
			Return    
		End    
	  
	 END
   Else      
	Begin
	    Update TMDOCU_PROV   
	    Set CO_TIPO_OPER = @ISCO_TIPO_OPER,   
			PO_DETR = @VNPO_DETR,
		   FE_USUA_MODI = Getdate(), CO_USUA_MODI = @ISCO_USUA_MODI    
	    Where  CO_EMPR = @ISCO_EMPR    
	    And    CO_PROV = @ISCO_PROV    
	    And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU    
	    And    NU_DOCU_PROV = @ISNU_DOCU_PROV     
     
    If @@error <> 0    
       Begin    
         Rollback tran    
         Return    
       End    

   End 

   Update TTDOCP_ANUL Set CO_TIPO_OPER = @ISCO_TIPO_OPER,    
          FE_USUA_MODI = Getdate(), CO_USUA_MODI = @ISCO_USUA_MODI    
   Where  CO_EMPR = @ISCO_EMPR    
   And    CO_PROV = @ISCO_PROV    
   And    CO_TIPO_DOCU = @ISCO_TIPO_DOCU    
   And    NU_DOCU_PROV = @ISNU_DOCU_PROV     
    
   If @@error <> 0    
      Begin    
        Rollback tran    
        Return    
      End    
    
 Commit Tran    
/*------------------------- Fin ------------------------------*/


GO
